package com.taijihuabao.modules.service;

import com.taijihuabao.modules.entity.ApprovalEntity;
import com.taijihuabao.modules.model.approval.vo.ApprovalVO;

/**
 * 审批流程
 *
 * @Author Xiao
 */
public interface LeaveApprovalService {

    /**
     * 部署流程定义
     */
    void deploy();

    /**
     * 启动流程
     *
     * @param approvalVO
     */
    void startProcess(ApprovalVO approvalVO);

    /**
     * 审核待办
     *
     * @param userId         审核人
     * @param approvalEntity taskId 审核任务
     *                       agree  审核结果
     */
    void approvalTask(Long userId, ApprovalEntity approvalEntity);

    /**
     * 修改请假，并重新申请
     *
     * @param userId
     * @param approvalVO
     */
    void reSubmit(Long userId, ApprovalVO approvalVO);

}
